A number of page layout applications are known in the art, such as Adobe InDesign®, Adobe PageMaker®, and QuarkXPress®. When using a page layout application, text can be input into a plurality of text frames, which are simply regions or boxes in the page layout. Typically, the text frames have borders in which the text is contained and can be moved or otherwise manipulated in the application. Often, the user must modify attributes of the text in the text frames so that the text sufficiently fits within the text frame, such as point (font) size, leading (i.e., the spacing between lines of text), tracking (i.e., spacing between letter and words), kerning, spacing between paragraphs, spacing before and after text, vertical and/or horizontal scaling, etc. Modifying text attributes to fit the text in a text frame is often referred to as “type fitting” or “copy fitting,” and current page layout applications offer various utilities to aid in type fitting. With these utilities, users must specify attributes of the text and preferred parameters of the attributes to be used when type fitting the text.
A commercial example of a prior art type-fitting system for a page layout application is the CopyFit™ XTensions module used in DesignMerge™. Referring to FIG. 1, an interface 100 is illustrated that is similar to the prior art CopyFit™ XTensions module, which may be used to type fit text within a text frame of a given size in a QuarkXPress™ page layout application. The interface 100 is used to fit and fix “overflow” or “underflow” of text within a text frame, i.e., conditions respectively where the text is too large to fit in the text frame (“overset”) or where the text is too small and does not adequately fill up the text frame (“underset”).
Non-optimized text fitting, and the manner in which interface 100 can be used to fix such problems, is shown first by reference to the exemplary text frames 200, 210, and 220 of FIG. 2A. As shown, text frame 200 is overset, while text frames 210 and 220 are underset. An overflow of text may occur when the text is imported or manually input into a text frame such that it is longer than the space allotted in the text frame, rendering some of the text non-visible within the frame (200). Likewise, an underflow of text may occur when the text as imported or input is shorter than the space allotted in the text frame (210, 220), in which case empty space follows the text within the frame. The user in these circumstances can make the text fit within the text frames 200, 210, and 220 by modifying the sizes of the text frames, but this may not be desirable or possible in all circumstances. For example, a page layout (e.g., for a brochure or newspaper) may have several text frames carefully laid out on one or more pages and interspersed among pictures, drawings, logos, or other graphics, such that changing the sizes of text frames would not be practical as this would tend to alter the interrelations of the graphical elements and hence the entirety of the page layout.
Because the user may not wish to change the size of a text frame or frames, the user can access the interface 100 of FIG. 1 to change attributes of the text so that the text can be made to fit the text frame(s). In this regard, interface 100 includes a set of attributes 110 for type fitting text in a text frame, such as those discussed earlier. Each attribute 110 is defined with minimum and maximum values for the parameters 112, 114 by which the attribute 110 can be automatically adjusted in accordance with an algorithm implemented by the interface 100. Each attribute 110 is also defined by a step value 116 to set the gradations by which the attribute 110 may be changed. Also present is a priority 118 which the algorithm uses to preferentially adjust the parameters. For example, as shown in FIG. 1, in the case of an non-optimized fit, the algorithm would first adjust the tracking to see if a proper fit can be achieved within its prescribed parameters; if not, the horizontal scaling would similarly be adjusted; followed by the point size, etc. The parameters 112, 114, steps 116, and priorities 118 are user-definable, and may be typed into the interface 100 or loaded in as a pre-stored template of parameters using drop down menu 102. As one skilled in the art will recognize, the algorithm can be iterative in nature to find a most optimal fit even when priorities are specified, and can be achieved in any number of ways.
To type fit text, the user selects the text frame in the page layout application and then brings up (in any number of ways) the interface 100. The selected frame to be fitted is then displayed in interface 100 as entry 101, and thereafter the user enters or loads (102) the parameters 112, 114, step 116, and priority 118 for the type-fitting attributes 110 to be used on the selected frame. Thereafter, the user can engage the algorithm to apply the parameters to the text frame to fit the text by selecting the “fit frame” button 120. The user can also “tag” the selected text frame 104 with a particular parameter set 102 without applying the same via the button 120. This is useful when the user knows a certain frame needs a particular set of attributes and parameters for type fitting the text, but it is not yet useful to actual fit the text of the frame, for example, because the sizes or locations of the text frames are still being altered in the page layout application. Such “tagging” can also be removed (108) or read (106) to understand or perhaps modify the parameters associated with the frame 101.
FIG. 2B shows the text frames 200-220 after each has been subject to the type fitting attributes, parameters, steps, and priorities shown in FIG. 1 (i.e., “Set 1” from box 102 in FIG. 1). Thus, in accordance with the type fitting algorithm, it can be seen that the text in text frame 200 has been type fit by changing the font size of the text from 12.0 to 9.5 (a 20.8% decrease); text frame 210 has been type fit by changing the font size from 12.0 to 13.0 (a 8.3% increase); and text frame 220 has been type fit by changing the font size from 16.0 to 18.6 (a 16.3% increase). Thus, the independently type-fit text frames 200, 210, and 220 of FIG. 2B, although they have each been type fit, are not scaled uniformly by the algorithm, which is not surprising as the algorithm does nothing to take the attributes and parameters of another text frame not currently being set into account. Of course, other type fitting attributes (e.g., tracking) may also have been changed in a non-uniform manner, but this is not shown in the FIG. 2 for clarity.
Non-uniform scaling can be troubling to the user. For example, suppose that text frame 220 represents the title of a story, text frame 200 represents a subtitle of the story, and that frame 210 contains the actual text of the story (which may or may not continue in a different column on a subsequent page in the page layout). The user might have determined while entering the text that the title, subtitle, and story text as put in the frames looked pleasing in relation to one another: i.e., the subtitle and the story text look sensible when written in the same font size, while the title is sensibly a little bigger than both. However, applying the same type fitting attributes and parameters (i.e., “Set 1” in box 102) to each frame independently produces the non-scaled changes in font size discussed above (and perhaps other attributes) between the text frames 200-220. Thus, the subtitle in frame 200 is now considerably smaller than the story text in frame 210, a potentially odd-looking result.
Because of this problem, the user may be relegated to a frustrating and complicated iterative process where the user has to modify the type fitting attributes and parameters manually for each frame (perhaps using another user interface (not shown) which displays the actual value for the attributes of the text, as opposed to potential parameters or ranges of the attributes as in interface 100). Of course, as attribute parameters for one (first) frame are manually changed, another (second) frame may need to be similarly changed if uniform or near-uniform scaling is desired. However, such a change may not be permissible in the second frame (e.g., it might result in an overset condition), thus requiring the user to go back to the first frame to investigate whether modifying different attribute parameters can be changed in both the first and second frames, hoping that such a modification will be acceptable in some other related (third) frame, etc. When dealing with multiple frames and multiple attributes, such manual “tweaking” can be a very complex task, especially when there are multiple font sizes or other attributes present in a single frame, or across multiple frames. As a result, much of the benefit of the interface 100, and the algorithm it promotes, are lost.
The subject matter of the present disclosure is directed to addressing these and other problems.